﻿#pragma once

#ifndef QCEFUTIL_H
#define QCEFUTIL_H

#include <QtCore>
#include <QtGui>
#include <QtWidgets>

#include "QCefHeader.h"


//////////////////////////////////////////////////////////////////////////
//
CefString   QStrToCefStr(const QString & str);
QString     CefStrToQStr(const CefString & str);

QBitmap     CefImageToQBitmap(CefRefPtr<CefImage> image);
QIcon       CefImageToQIcon(CefRefPtr<CefImage> image);

QRect       CefRectToQRect(const CefRect & rect);
CefRect     QRectToCefRect(const QRect & rect);

QRegion CefRegionToQRegion(const CefRenderHandler::RectList & rects);
CefRenderHandler::RectList QRegionToCefRegion(const QRegion & rects);

void CefValueToQVariant(QVariant & variant, const CefRefPtr<CefValue> & cefValue);
void QVariantToCefValue(CefRefPtr<CefValue> & cefValue, const QVariant & variant);

//key
void MapQKeyEventToCefKeyEvent(QKeyEvent* qe, CefKeyEvent& ce);
bool ShouldSendKeyCharEvent(QKeyEvent* qe);
void AdjustCefKeyCharEvent(QKeyEvent* qe, CefKeyEvent& ce);

//type: cef_cursor_type_t
Qt::CursorShape mapCursorShape(int type);


//map
QMultiMap<QString, QString> CefMapToQMap(const std::multimap<CefString, CefString> & mp);
std::multimap<CefString, CefString> QMapToCefMap(const QMultiMap<QString, QString> & mp);

#endif // QCEFUTIL_H
